Field of the Disclosure
The present disclosure relates generally to network processors and more specifically to network application verification.
Description of the Related Art
A network processor is a processor that has been specifically designed or programmed to process packets received via one or more networks. For each received packet, the network processor executes one or more sets of instructions, referred to as network applications, to carry out one or more operations based on the packet, such as packet classification, packet routing, dropping or blocking of a packet (firewall operations) and the like. To ensure proper processing of received packets, each network application is typically verified before the network application is employed during normal in-situ packet processing. Verification of a network application typically involves sending one or more test packets to the network processor, processing the test packets with the network application, and comparing one or more outputs of the network application to one or more expected results. However, it is difficult for the test packets to fully emulate the wide variety of packets that can be received by the network processor during normal operation, and therefore difficult to fully verify the network application. Further, because of the complexity of the network application, it is difficult to identify the particular aspect or feature of the network application that is the source of any errors identified during verification.